package CountDownLatchTest;

import java.util.concurrent.*;

/**
 * Created by dycong on 2017/4/5.
 * todo 另一种典型用法是，将一个问题分成 N 个部分，用执行每个部分并让锁存器倒计数的 Runnable 来描述每个部分，然后将所有 Runnable 加入到 Executor 队列。当所有的子部分完成后，协调线程就能够通过 await。
 */
public class CountDownLatch2 {
    private static final int N=10;
    static CountDownLatch doneSignal=new CountDownLatch(N);

    static ExecutorService executor= Executors.newFixedThreadPool(N);

    public static void main(String[] args) throws Exception{
        for (int i=0;i<N;i++)
            executor.execute(new Worker2(doneSignal));
        doneSignal.await();
        System.out.println("main back");
    }

}
